// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.entity;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fowo.api.common.annotaion.*;
import com.fowo.api.common.mybatis.handlers.SysFileListTypeHandler;
import com.fowo.api.sys.entity.SysFile;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

/**
 * PurchaseChangeOrderProduct
 */
@DS("ds24")
@Getter
@Setter
@TableName(value = "purchase_change_order_product", autoResultMap = true)
@Schema(title = "变更单子表")
public class PurchaseChangeOrderProduct implements Serializable {

  /**
   * 图片
   */
  @TableField(value = "`imgs`", typeHandler = SysFileListTypeHandler.class)
  @Schema(title = "图片")
  private List<SysFile> imgs;

  /**
   * 业务标识 (0 - 已变更; )
   */
  @TableField(value = "`business_ident`")
  @Schema(title = "业务标识")
  private String businessIdent;

  /**
   * 品名
   */
  @TableField(value = "`product_id`")
  @JoinField(Product.class)
  @Schema(title = "品名")
  private Long productId;

  /**
   * SKU
   */
  @TableField(value = "`sku`")
  @Schema(title = "SKU")
  private String sku;

  /**
   * SPU
   */
  @TableField(value = "`spu`")
  @Schema(title = "SPU")
  private String spu;

  /**
   * 店铺
   */
  @TableField(value = "`sid`")
  @JoinField(ShopInfo.class)
  @Schema(title = "店铺")
  private Long sid;

  /**
   * MSKU
   */
  @TableField(value = "`msku`")
  @Schema(title = "MSKU")
  private String msku;

  /**
   * FNSKU
   */
  @TableField(value = "`fnsku`")
  @JoinField(ListingFather.class)
  @Schema(title = "FNSKU")
  private Long fnsku;

  /**
   * 原采购数量
   */
  @TableField(value = "`original_application_num`")
  @Schema(title = "原采购数量")
  private Long originalApplicationNum;

  /**
   * 采购量
   */
  @TableField(value = "`application_num`")
  @Schema(title = "采购量")
  private Integer applicationNum;

  /**
   * 原单价
   */
  @TableField(value = "`original_unit_price`")
  @Schema(title = "原单价")
  private java.math.BigDecimal originalUnitPrice;

  /**
   * 单价
   */
  @TableField(value = "`unit_price`")
  @Schema(title = "单价")
  private java.math.BigDecimal unitPrice;

  /**
   * 成本价格
   */
  @TableField(value = "`cost_price`")
  @Schema(title = "成本价格")
  private java.math.BigDecimal costPrice;

  /**
   * 主材料单价
   */
  @TableField(value = "`main_unit_price`")
  @Schema(title = "主材料单价")
  private java.math.BigDecimal mainUnitPrice;

  /**
   * 主材料克重
   */
  @TableField(value = "`gram_weight`")
  @Schema(title = "主材料克重")
  private java.math.BigDecimal gramWeight;

  /**
   * 工费
   */
  @TableField(value = "`labor_costs`")
  @Schema(title = "工费")
  private java.math.BigDecimal laborCosts;

  /**
   * 辅料
   */
  @TableField(value = "`accessories_price`")
  @Schema(title = "辅料")
  private java.math.BigDecimal accessoriesPrice;

  /**
   * 损耗%
   */
  @TableField(value = "`materialloss`")
  @Schema(title = "损耗%")
  private java.math.BigDecimal materialloss;

  /**
   * 包装
   */
  @TableField(value = "`materialpack`")
  @Schema(title = "包装")
  private java.math.BigDecimal materialpack;

  /**
   * ERP价格
   */
  @TableField(value = "`erpprice`")
  @Schema(title = "ERP价格")
  private java.math.BigDecimal erpprice;

  /**
   * 含税单价
   */
  @TableField(value = "`tax_price`")
  @Schema(title = "含税单价")
  private java.math.BigDecimal taxPrice;

  /**
   * 原金额
   */
  @TableField(value = "`original_total_price`")
  @Schema(title = "原金额")
  private java.math.BigDecimal originalTotalPrice;

  /**
   * 金额
   */
  @TableField(value = "`total_price`")
  @Schema(title = "金额")
  private java.math.BigDecimal totalPrice;

  /**
   * 价税合计
   */
  @TableField(value = "`price_amount`")
  @Schema(title = "价税合计")
  private java.math.BigDecimal priceAmount;

  /**
   * 预计到货日期
   */
  @TableField(value = "`expect_arrive_time`")
  @Schema(title = "预计到货日期")
  private java.util.Date expectArriveTime;

  /**
   * 所属变更单
   */
  @TableField(value = "`parent_purchase_change_order`")
  @JoinField(PurchaseChangeOrder.class)
  @Schema(title = "所属变更单")
  private Long parentPurchaseChangeOrder;

  /**
   * 编号
   */
  @TableField(value = "`id`")
  @TableId(type = IdType.ASSIGN_ID)
  @Schema(title = "编号")
  private Long id;

  /**
   * 型号
   */
  @TableField(value = "`model`")
  @Schema(title = "型号")
  private String model;

  /**
   * 供应商报价
   */
  @TableField(value = "`supplier_quote`")
  @Schema(title = "供应商报价")
  private java.math.BigDecimal supplierQuote;

  /**
   * 到货量
   */
  @TableField(value = "`quantity_received`")
  @Schema(title = "到货量")
  private Integer quantityReceived;

  /**
   * 退货量
   */
  @TableField(value = "`quantity_return`")
  @Schema(title = "退货量")
  private Integer quantityReturn;

  /**
   * 参考价
   */
  @TableField(value = "`reference_price`")
  @Schema(title = "参考价")
  private java.math.BigDecimal referencePrice;

  /**
   * 更新报价 (0 - 否; 1 - 是; )
   */
  @TableField(value = "`update_quo`")
  @Schema(title = "更新报价")
  private String updateQuo;

  /**
   * 税率
   */
  @TableField(value = "`tax_rate`")
  @Schema(title = "税率")
  private java.math.BigDecimal taxRate;

  /**
   * 税额
   */
  @TableField(value = "`tax_amount`")
  @Schema(title = "税额")
  private java.math.BigDecimal taxAmount;

  /**
   * 备注
   */
  @TableField(value = "`remark`")
  @Schema(title = "备注")
  private String remark;

  /**
   * 创建时间
   */
  @TableField(value = "`create_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "创建时间")
  private java.util.Date createTime;

  /**
   * 创建人
   */
  @TableField(value = "`create_user`")
  @Schema(title = "创建人")
  private Long createUser;

  /**
   * 更新时间
   */
  @TableField(value = "`last_update_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "更新时间")
  private java.util.Date lastUpdateTime;

  /**
   * 更新人
   */
  @TableField(value = "`last_update_user`")
  @Schema(title = "更新人")
  private Long lastUpdateUser;

  /**
   * 删除标记
   */
  @TableField(value = "`del_flag`")
  @TableLogic
  @Schema(title = "删除标记")
  private Boolean delFlag;

  /**
   * 单箱数量
   */
  @TableField(value = "`quantity_per_case`")
  @Schema(title = "单箱数量")
  private Integer quantityPerCase;

  /**
   * 箱数
   */
  @TableField(value = "`cases_num`")
  @Schema(title = "箱数")
  private Integer casesNum;

  /**
   * 采购订单子表id
   */
  @TableField(value = "`purchase_order_product_id`")
  @Schema(title = "采购订单子表id")
  private Long purchaseOrderProductId;
}
